package com.example.springmvcdemo.controller;

import jakarta.servlet.http.HttpSession;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")    // 类注解的名字最好和该java文件的名字对应上(在开发过程中,接口定义一定是先行的,因此一般不会出现冲突情况)
public class UserController {
    @RequestMapping(value="/login",method={RequestMethod.POST}) // RequestMapping的method参数是可以跟数组的
    public Boolean login(String userName, String password, HttpSession session) {
//        if (userName == null || "".equals(userName)) {     // 校验参数,除了可以用@RequestParam,还可以使用逻辑校验
//            return false;   // 常量写在前面,变量写括号里面
//        }
        // StringUtils.hasLength表示该参数必须有长度,也就是存不存在,为不为null
        if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {
            return false;
        }
        // 不为空,校验账号密码,目前还没学数据库,这里先写死
        if("admin".equals(userName) && "admin".equals(password)) {
            // 设置session,这里使用HttpSession,没有的话会默认创建
            session.setAttribute("userName",userName);
            return true;
        }
        return false;
    }

    @RequestMapping("getLoginUser")
    public String getLoginUser(HttpSession session) {
        // 获取用户名需要从session中拿,那么得先存啊,在上面 login 中存
        if(session.getAttribute("userName")!=null) {
            return (String) session.getAttribute("userName");
        }
        return "";
    }
}
